Some embodiments described herein relate generally to flow control within a network, such as, for example, methods and apparatus for Fibre Channel over Ethernet credit-based flow control.
Known network solutions often employ a mix of Ethernet- and Fibre Channel-based switching to transmit frames among network devices such as application and storage servers. In many such known network solutions, Ethernet is employed for the routing of TCP/IP-based application server information, while Fibre Channel is employed by components of storage area networks (SANs). This use of two distinct protocols, however, typically involves distinct switching hardware for each, producing substantial hardware, energy and heat footprints at larger network centers, such as corporate datacenters. To reduce these inefficiencies, the Fibre Channel over Ethernet (FCoE) protocol was developed, allowing Fibre Channel frame information to be encapsulated within Ethernet frames and thus enabling a single hardware device (known as a Certified Network Adapter, or “CNA”) to exchange information using either or both protocols. The FCoE protocol further allows Fibre Channel information to be transmitted over an Ethernet physical layer.
Some known implementations of FCoE can be configured to use an Ethernet-, pause-based method of flow control within the network. In such scenarios, a receiver module transmits a pause signal to a transmission device when the receiver module's intake buffer has reached capacity. Due to the latency inherent in transmitting this pause signal, however, the receiver module's buffer can be overwhelmed by data transmitted by the transmission device after buffer capacity has been reached but before the transmission device has received the pause signal—a phenomenon known as reaching the “bandwidth-delay cliff”.
Because such occurrences are relatively rare when network traffic travels relatively short distances from node to node, this limitation of pause-based flow control is often an acceptable solution for single-site datacenters. When network devices are connected over longer distances, however, the resulting greater pause-signal latency results in a correspondingly greater amount of data being transmitted by the transmission device in the intervening time period—making a recipient device's buffer much more likely to overflow, and thus much more likely to drop frames. Under such circumstances, when congestion results, the receiver module is forced to drop additional frames as they arrive—resulting in data loss. Because accuracy-critical applications such as network storage prefer lossless data transmission, a need exists for methods and apparatus to implement flow control over an FCoE network in a manner that avoids dropped frames and thus data loss.